Page({
    /**
     * 页面的初始数据
     */
    data: {
      userInfo: {
        avatar: "/assets/images/my/avatar.jpg", // 默认头像
        nickname: "",
        gender: "male", // 默认男
        age: "",
        phone: "",
      },
      isAvatarHover: false, // 头像是否被长按时显示 overlay
    },
  
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // 2. 优化：读取缓存并与默认数据合并
        const cachedInfo = wx.getStorageSync("userInfo") || {};
        this.setData({
          // 使用展开运算符(...)合并对象，cachedInfo 的优先级更高
          userInfo: { ...this.data.userInfo, ...cachedInfo }
        });
      },
  
    // 头像长按显示覆盖层
    onAvatarLongPress() {
      this.setData({
        isAvatarHover: true
      });
    },
    
    // 头像点击事件 (用于关闭覆盖层或触发选择图片)
    onAvatarTap() {
      // 如果覆盖层显示，则关闭
      if (this.data.isAvatarHover) {
        this.setData({
          isAvatarHover: false
        });
        return;
      }
  
      // 否则执行选择图片逻辑
    wx.chooseImage({
        count: 1,
        sizeType: ["compressed"],
        sourceType: ["album", "camera"],
        success: (res) => {
          const tempFilePaths = res.tempFilePaths;
          
          // 3. 关键修正：更新页面数据的同时，立即更新本地缓存
          const updatedUserInfo = {
            ...this.data.userInfo,
            avatar: tempFilePaths[0]
          };
  
          this.setData({
            userInfo: updatedUserInfo
          });
          
          // 实时保存到缓存，确保返回主页时能看到最新头像
          wx.setStorageSync("userInfo", updatedUserInfo);
        }
      });
    },
  
    // 输入框聚焦时的处理
    onInputFocus(e) {
      // 可以在这里添加一些逻辑，比如滚动页面避免键盘遮挡
      console.log('Input focused:', e.currentTarget.dataset.input);
    },
  
    // 输入框失焦时的处理
    onInputBlur(e) {
      // 可以在这里添加一些逻辑，比如验证输入内容
      console.log('Input blurred:', e.currentTarget.dataset.input);
    },
  
    // 输入框内容变化
    onInputChange(e) {
      const { key } = e.currentTarget.dataset;
      const { value } = e.detail;
      this.setData({
        [`userInfo.${key}`]: value
      });
    },
  
    // 性别选择变化
    onGenderChange(e) {
      this.setData({
        "userInfo.gender": e.detail.value
      });
    },
  
    // 保存资料
  onSave() {
    const { userInfo } = this.data;
    
    // 简单的表单验证
    if (!userInfo.nickname) {
      wx.showToast({ title: '请输入昵称', icon: 'none' });
      return;
    }
    if (!userInfo.phone) {
      wx.showToast({ title: '请输入手机号', icon: 'none' });
      return;
    }

    wx.showLoading({
      title: "保存中...",
    });
    
    // 模拟接口请求
    setTimeout(() => {
      wx.hideLoading();
      
      // 4. 最终保存：将所有修改提交到本地缓存
      wx.setStorageSync("userInfo", userInfo);
      
      wx.showToast({
        title: "保存成功",
        icon: "success"
      });
      
      // 延迟返回，让用户看到成功提示
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }, 1000);
  }
});